package com.youzan.cloud.biz.integral.service;



import com.youzan.cloud.biz.integral.dal.dataobj.PointChange;
import com.youzan.cloud.biz.integral.dal.dataobj.UserPoint;
import java.util.List;

/**
 * @author hlin
 */
public interface LocalPointService {
    /**
     *获取本地用户积分
     * @author wangyuan
     * @date 2021/08/19 11:32
     * @param yzOpenId
     * @return com.youzan.cloud.biz.component.point.dal.dataobj.UserPoint
     */
    UserPoint getUserPoint(String yzOpenId);

    /**
     *本地用户积分明细
     * @author wangyuan
     * @date 2021/08/19 11:32
     * @param yzOpenId
     * @return java.util.List<com.youzan.cloud.biz.component.point.dal.dataobj.PointChange>
     */
     List<PointChange> getUserPointDetails(String yzOpenId);

     /**
      *修改积分变动
      * @author wangyuan
      * @date 2021/08/19 11:33
      * @param changeInfo
      * @return void
      */
     void changeUserPoint(PointChange changeInfo);



     /**
      *记录积分变动
      * @author wangyuan
      * @date 2021/08/19 11:44
      * @param changeInfo 积分流水实体
      * @return int
      */
     int createPointLog(PointChange changeInfo);

     /**
      *查询业务唯一积分流水记录
      * @author wangyuan
      * @date 2021/08/19 15:51
      * @param unique  业务唯一键值
      * @return com.youzan.cloud.biz.component.point.dal.dataobj.PointChange
      */
    PointChange queryByUnique(String unique,Integer pointType,String syncStatus);

    /**
     *更新积分流水状态 bizNo 和 积分类型
     * @author wangyuan
     * @date 2021/08/20 14:32
     * @param pointChange
     * @return int
     */
    int changeLogStatus(PointChange pointChange);


    /**
     * 更新积分流水状态
     * @param status
     * @param bizNo
     * @param pointType
     * @return
     */
    boolean changeLog(String status, String bizNo,Integer pointType);
}
